package com.har.service;

import com.alibaba.fastjson.JSONObject;
import org.apache.catalina.servlet4preview.http.HttpServletRequest;

/**
 * @author macwy
 * @Title:har-finance
 * @Package com.har.service
 * @Description 华泰保险相关接口
 * @date 2018/7/27 13:59
 * @Version 1.0
 */
public interface HtService {


    /**
     * 订单支付
     * @param dataJson
     *
     * tradeName >> 交易名称 <br/>
     * tradeType >> 交易类型(01：PC支付，02：移动支付)<br/>
     * orderNo  >> 订单号 <br/>
     * money  >> 交易金额(金额必须保留两位小数(0.00)) <br/>
     * tradeTime >> 交易时间2016-01-14 16:28:18 <br/>
     * IsWXClinet >> 1:是 0:否；默认为1  <br/>
     * IsAliPay >> 1:是 0:否；默认为1   <br/>
     * IsChinaPay >> 1:是 0:否;默认为1  <br/>
     * IsWXH5 >> 1:是 0:否（微信H5支付必填）<br/>
     * spbillCreateIp >> 用户端IP（微信H5支付必填）<br/>
     * showUrl  >> 用于支付取消返回指定页面地址   <br/>
     * sceneInfo >> （微信H5支付必填） <br/>
     *
     * @see  HtService#generateOrderNo()
     *
     * @return
     */
    String orderPay(JSONObject dataJson);


    /**
     * 订单查询
     * @param dataJson
     * orderNo  订单号>>渠道+系统时间(YYYYMMDDhhmmss)+流水号（8位流水号））
     * thirdType >> 微信公众号支付；02-微信扫描支付 03-支付宝PC端支付,04-支付宝手机网站支付 ,05-支付宝APP支付,06-银联支付
     * @return
     */
    String orderQuery(JSONObject dataJson);


    /**
     * 生成订单号
     * @return
     * 订单号
     */
    String generateOrderNo();


    /**
     * 支付回调
     * @param request
     * @return
     *
     *
     * status  >>  支付交易状态  1已支付 0未支付
     * channelCode >> 渠道编码
     * orderNo >> 商户订单号
     * transactionNo >> 第三方交易流水号
     * thirdType     >> 01-微信公众号支付；02-微信扫描支付,03-支付宝PC端支付,
     *                  04-支付宝手机网站支付 ,05-支付宝APP支付,06-银联支付
     * payFinishTime >> 交易时间 YYYY-MM-dd HH:mm:ss
     * payMode       >> 支付宝23，微信22，银联25
     *
     *
     */
    JSONObject payCallBack(HttpServletRequest request) throws Exception;


    /**
     * 投保出单
     * @param dataJson
     * @return
     */
    String policyHt(JSONObject dataJson);
}
